Class文件
Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,
中间没有添加任何分隔符号。Class文件采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构中只包含两种数据类型,
无符号数和表。无符号数属于基本的数据类型,以u1,u2,u4,u8分别代表1个字节,2个字节,4个字节和8个字节的无符号数,
可以用来描述数字、索引引用、数量值或者按照utf-8编码构成字符串值。表是由多个无符号数或者其他表作为数据项构成的
复合数据类型,所有表都习惯性地以“_info”结尾,用来描述有层次关系的复合结构数据。
Class文件的内容包括:
1 | ClassFile { |
- 访问标志:类还是接口;是否定义为public类型,abstract类型;若为类,是否声明为final。
- 字段:用来描述接口或类中的变量,但不包括在方法内部的变量。
- 字面量:文本字符串,声明为final的常量值等。
- 符号引用:类和接口的全限定名;字段的名称和描述符;方法的名称和描述符。
- 类索引,父类索引,接口索引:用来确定类的继承关系。